import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Clase Fondo donde se inicializan y agregan todos los objetos de cada escenario
 * 
 * @author Programación Orientada a Objetos (Adrian Cerda Cerda , Jorge Armando Tovar Ojeda)
 * @version Maze of Souls (20 de noviembre del 2012)
 */
public class Fondo extends World
{

    private static char [][]existe= new char [17][23]; //Areglo para poner los objetos que exiten 
    private char [][] exist; // arreglo donde se inicializan las pocisiones de los objetos
    //Arreglos de lo diferente objetos que hay en cada escena
    private static Pared[][] lasParedes = new Pared[existe.length][existe[0].length]; // Arreglo tipo de la Clase Pared(Obstaculo)
    private static Piedra[][] lasPiedras = new Piedra[existe.length][existe[0].length]; // Arreglo tipo de la Clase Piedra(Obstaculo)
    private static Arbol[][] losArboles = new Arbol[existe.length][existe[0].length]; //Arreglo tipo de la Clase Arbol(Obstaculo)
    private static Puerta[][] lasPuertas = new Puerta[existe.length][existe[0].length];//Arreglo tipo de la Clase Puerta
    private static PuertaMayor[][] lasPuertasM = new PuertaMayor[existe.length][existe[0].length]; //Arreglo tipo de la Clase Puerta Mayor
    private static Fuego[][] losFuegos = new Fuego[existe.length][existe[0].length];//Arreglo tipo de la Clase Fuego (Obstaculo)
    private static Tesoro[][] losTesoros = new Tesoro[existe.length][existe[0].length];//Arreglo tipo de la Clase Tesoro
    private static Caja[][] lasCajas = new Caja[existe.length][existe[0].length];//Arreglo tipo de la Clase Caja
    private static Troll[][] losTrolls = new Troll[existe.length][existe[0].length];//Arreglo tipo de la Clase Troll (Enemigo)
    private static Orion[][] losOrions = new Orion[existe.length][existe[0].length];//Arreglo tipo de la Clase Orion (Enemigo)
    private static Warrior[][] losWarriors = new Warrior[existe.length][existe[0].length];//Arreglo tipo de la Clase Warrior(Enemigo)
    private static Nao[][] losNaos = new Nao[existe.length][existe[0].length];//Arreglo tipo de la Clase Nao (Enemigo)
    private static Bonus[][] losBonus = new Bonus[existe.length][existe[0].length];//Arreglo tipo de la Clase Bonus
    private static Llave[][] lasLlaves = new Llave[existe.length][existe[0].length];//Arreglo tipo de la Clase Llave
    private static Trampa[][] lasTrampas= new Trampa[existe.length][existe[0].length];//Arreglo tipo de la Clase Trampa
    
    private Link link;  // Clase para nuestro heroe
    private int numLlave=1;// variable para hacer referencia a la puerta que se puede abrir
    private int vida=22;// varible para llevar el conteo de la viada de nuestro Heroe
    private int puerta=0; // variable para saber que numero de puerta se esta abriendo
    private int numTesoro;// contador de los tesoros que se estan recolectado
    private int numCajas=8;// variable para llevar el conteo de las cajas
    public static int energia=16;//variable que lleva el conteo de la energia de nuestro Heroe
    private Mensaje m; // Clase Mensaje para mostrar mensajes 
    private Cronometro crono;// Contador del Tiempo 
    private int n=16;//contador de energia 
    private static final int JUGAR=1;// consatante para empezar el juego
    private static final int CREDITOS=2;// consatante para ver los creditos
    private static final int AYUDA=3;//Constante para la  Ayuda
    private static final int MENU=0;//Sila opsión esta en 0 iremos al Menu
    private Menu jugar;//para crear un objeto para empezar a jugar
    private Menu ayuda;//Para crear el Boton ayuda
    private Menu creditos;// para crear el Boton creditos
    private Menu menu;//Para crear el boton Menu
    private Menu titulo; //Para crear la imagen Principal 
    private GreenfootImage fondoMenu;//Para poner la Imagen principal(en el Menu)
    private GreenfootImage fondo;// Para poner la Imagen de Fondo de nuestros Escenarios
    private GreenfootImage cred;// Imagen para mostrar los creditos
    private Energia e= new Energia();// Para mostrar la energia del Heroe
    private Vida v= new Vida();// Para mostrar la vida del Heroe
    public int mapa=1;// variable para hacer referencia al nivel
    /**
     * Metodo para detener el juego
     */
    public void detener()
    {
        Greenfoot.stop();
    }
    /**
     * Metodo que indica cuando se ha juntado la llave 
     */
    public void cambiaLlave()
    {
        numLlave++;
        m= new Mensaje("Has juntado una Llave" + "\n"+ " debes buscar su puerta", 20); 
        m.imprime();
        addObject(m , link.getX(),link.getY());
        Greenfoot.delay(200);
        removeObject(m);
    }
    /**
     * @return numLlave para obtener el numero de la llave  
     */
    public int regresaLlave()
    {
        return numLlave;
    }
    /**
     * @return  n
     */
    public int regresaN()
    {
        return n;
    }
    /**
     * Metodo que muestra cuando se a juntado un tesoro e incrementa el numero de tesoros juntados
     */
    public void cambiaTesoro()
    {
        numTesoro++;
        m= new Mensaje("Has juntado un " + "\n"+" tesoro  " + numTesoro +" / " + n, 15); 
        m.imprime();
        addObject(m , link.getX(),link.getY());
        Greenfoot.delay(100);
        removeObject(m);
     
    }
    /**
     * Metodo para cambiar el numero de cajas que hay (disminuye una cada vez que se llama)
     */
    public void cambiaCajas()
    {
        numCajas--;
    }
    /**
     * @return numCajas Regresa el numero de cajas que hay
     */
    public int regresaCaja()
    {
        return numCajas;
    }
    /**
     * @return numTesoro Regresa el numero de tesoros juntados
     */
    public int regresaTesoro()
    {
        return numTesoro;
    }
    /**
     * Para hacer el cambio a la puerta que se esta queriendo abrir
     */
    public void puerta(int p)
    {
        puerta=p;
    }
    /**
     * @return puerta Regresa el numero de puerta
     */
    public int regresaP()
    {
        return puerta;
    }
    /**
     * @return Regresa la posición de nuestro heroe en Y
     */
    public int regresaY()
    {
        return link.getY();
    }
    /**
     * @return Regresa la posición de nuestro heroe en X
     */
    public int regresaX()
    {
        return link.getX();
    }
    /**
     * Metodo para el menu 
     * @param op para hacer el cambio dependiendo de la opción 
     * @param n para inicializar el nivel
     */
    public void menuOpsion(int op,int  n)
    {
        
        switch(op)
        {
           case JUGAR:
           
                  this.eliminaObjetos();
                  fondo= new GreenfootImage("grass.PNG");
                  this.setBackground(fondo);
                  prepare(1);
                       
                break;
           case AYUDA:
                  this.eliminaObjetos();
                  ayuda();
                  break;
           case CREDITOS:
                    this.eliminaObjetos();
                    creditos();
                   break;
           case MENU:
                    this.eliminaObjetos();
                    mapa=0;
                    menu();
                  break;
                    
        }
    }
    /**
     * Metodo para mostrar los creditos
     */
     public void creditos()
    {
        cred= new GreenfootImage("creditos.png");
        this.setBackground(cred);
        addObject(menu,720,50);
    }  
    /**
     * Metodo para mostrar la ayuda
     */
     public void ayuda()
    {
        GreenfootImage ima= new GreenfootImage("ayuda1.PNG");
        this.setBackground(ima);
        addObject(menu,720,50); 
    }
    /**
     * Metodo para mostrar el menu
     */
     public void menu()
    {
        this.setBackground(fondoMenu);
        addObject(jugar,400,450);
        addObject(creditos,220,310);
        addObject(ayuda,580,310);


    }
    /**
     * Constructor Fondo para crear el mundo e inicializar los objetos 
     */
    public Fondo()
    {    
        // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
        super(800, 600, 1); 
         jugar= new Menu(1);
         creditos= new Menu(2);
         ayuda= new Menu(3);
         menu= new Menu(0);
         titulo= new Menu(5);
         fondoMenu= new GreenfootImage("titulo1.png");
         this.menuOpsion(0,0);
         
       
 
    }
    /**
     * Metodo que elimina todos los objetos
     */
    public void eliminaObjetos()
    {
        int num,i=0;
        num=getObjects(null).size();
        Actor eli;
        while(i<num)
        {
            eli= (Actor) getObjects(null).get(0);
            removeObject(eli);
            i++;
        }
    }
    /**
     * Metodo que cambia la energia de nuestro Heroe y muestra cuando se ha terminado
     * @param p para incrementar o disminuir la energia
     */
    public void cambiaEnergia(int p)
    {
         energia= energia+(p);
      if(energia>=0)
      {
         
          if(energia>=17)
             energia=16;
          e.cambiaImagen(energia);
       }   
       else
       {
        m= new Mensaje("Se te ha terminado tu energia" , 15); 
        m.imprime();
        addObject(m , e.getX(),e.getY());
        Greenfoot.delay(200);
        removeObject(m);
       }
    }
    /**
     * @retur energia para saber la energia de nuestro heroe
     */
    public int regresaEnergia()
    {
        return energia;
    }
    /**
     * Metodo que cambia el nivel
     * @param m el nivel 
     */
    public void cambiaMapa(int m)
    {
       prepare(m);
    }
    /**
     * Metodo que cambia la vida de nuestro Heroe e indica cuando se le ha terminado
     * @para p para aumentar o disminuir la vida 
     */
    public void cambiaVida(int p)
    {
       
        if(vida>0 )
        {

             vida=vida+(p);
              if(vida>=23)
                 vida=22;
            v.cambiaImagen(vida);
        }
       else
       {
        m= new Mensaje("Se te ha terminado" + "\n" +" tu Vida", 30); 
        m.imprime();
        addObject(m , 350,300);
        Greenfoot.delay(200);
        detener();
        menuOpsion(0,0);
        
       }
    
    
    }
    /** 
     * Metodo para hacer el cambio de los niveles
     * @ param m el nivel
     */
    public void prepare(int m)
    {
        crono= new Cronometro();
        addObject(crono, 770,20);
        n=n/2;
        vida=22;
        n=16;
        energia=16;
        numTesoro=0;
        mapa=m;
       if(mapa==1)
         {
          preparaNiveluno();
         }
         
       else
       if(mapa==2)
         preparaNiveluno2();
        
       else
       if(mapa==3)
         preparaNiveluno3();
       
          else
       if(mapa==4)
         preparaNiveluno4();
        puerta=0;
        numCajas=8;
        //Greenfoot.playSound("zelda.mp3");
        addObject(v, 200,20);
        addObject(e, 600, 20);
        cambiaEnergia(0);
        cambiaVida(0);
    }
    /**
     * Metodo para la preparación del nivel 1
     * inicializa las posiciones de los objetos 
     * por medio de un arreglo
     */
   
         
    public void preparaNiveluno()
     {
        
       exist= new char[][] {{'0','0','0','0','0','0','0','0','0','0','1','P','1','0','0','0','0','0','0','0','0','0','0'},
                            {'1','1','1','1','1','1','1','1','1','1','1','0','1','1','1','1','1','1','1','1','1','1','1'},
                            {'1','0','0','0','o','0','0','0','0','t','1','0','0','o','0','0','0','v','v','0','0','0','1'},
                            {'1','n','0','0','0','c','0','0','a','0','1','0','0','0','e','0','0','0','0','1','0','0','1'},
                            {'1','0','0','1','0','c','1','0','0','0','1','1','t','0','0','a','a','a','p','a','0','0','1'},
                            {'1','0','t','1','0','c','0','0','a','0','0','1','0','0','0','a','v','0','0','a','e','0','1'},
                            {'1','0','0','1','0','0','1','0','0','0','f','f','0','f','0','a','0','0','0','a','0','0','1'},
                            {'1','1','1','1','v','0','1','0','a','0','f','1','e','0','0','a','0','0','n','a','0','t','1'},
                            {'1','0','0','a','0','0','0','0','r','0','0','1','0','c','c','a','0','0','0','a','0','1','1'},
                            {'P','0','0','0','0','0','1','0','r','0','0','1','1','0','1','a','0','w','0','a','0','0','P'},
                            {'1','0','0','a','0','0','1','0','r','0','n','1','0','0','0','a','0','0','c','a','0','1','1'},
                            {'1','0','0','f','0','0','0','0','r','0','0','1','0','a','t','a','0','t','0','a','0','0','1'},
                            {'1','1','1','1','0','f','0','v','r','L','0','0','0','0','0','a','a','a','a','a','0','0','1'},
                            {'1','c','0','0','0','0','0','0','r','r','r','r','r','r','0','0','0','t','0','0','0','0','1'},
                            {'1','0','r','r','r','r','0','0','0','0','0','v','0','0','r','r','r','r','r','r','0','n','1'},
                            {'1','c','t','0','0','0','o','0','0','0','f','0','f','0','0','0','0','0','0','0','0','0','1'},
                            {'1','1','1','1','1','1','1','1','1','1','1','P','1','1','1','1','1','1','1','1','1','1','1'}}; //21
     
                           

        transforma();
        agrega();
        link= new Link(11);
        addObject(link,80 ,310  );
             
              
                     
                          
      }
     /**
     * Metodo para la preparación del nivel 2
     * inicializa las posiciones de los objetos 
     * por medio de un arreglo
     */
    public void preparaNiveluno2()
    {
        
       exist = new char[][]{{'0','0','0','0','0','0','0','0','0','0','1','P','1','0','0','0','0','0','0','0','0','0','0'},
                            {'1','1','1','1','1','1','1','1','1','1','1','0','1','1','1','1','1','1','1','1','1','1','1'},
                            {'1','0','0','0','0','0','1','o','0','0','1','0','1','0','0','m','0','0','v','o','0','L','1'},
                            {'1','e','0','f','f','0','1','0','0','0','0','0','0','0','a','a','a','a','a','a','0','n','1'},
                            {'1','0','0','f','f','0','1','0','0','0','0','1','0','0','0','0','c','0','0','a','0','0','1'},
                            {'1','0','0','1','0','0','1','v','a','a','a','a','a','a','r','r','r','r','p','a','0','0','1'},
                            {'1','0','0','1','t','0','1','t','a','0','0','0','0','a','c','0','0','0','0','a','0','0','1'},
                            {'1','v','0','r','r','r','r','r','a','c','0','1','0','0','0','1','1','1','1','1','e','0','1'},
                            {'1','1','0','0','0','0','0','0','a','0','w','1','c','a','0','1','m','v','0','0','0','1','1'},
                            {'P','0','0','0','f','0','n','0','a','0','0','1','c','a','1','1','0','0','0','0','0','0','P'},
                            {'1','1','0','1','t','1','0','0','a','v','t','0','0','a','0','0','n','f','r','f','0','1','1'},
                            {'1','c','0','1','0','1','0','0','a','a','a','a','a','a','0','0','0','0','0','1','0','0','1'},
                            {'1','0','0','1','0','1','0','0','0','0','c','v','c','0','0','0','a','a','a','a','a','0','1'},
                            {'1','0','r','r','0','1','0','0','0','0','0','m','0','0','0','0','0','0','0','0','0','0','1'},
                            {'1','e','0','0','0','0','0','0','0','0','1','0','1','0','r','0','0','0','0','0','0','c','1'},
                            {'1','0','0','0','0','0','o','0','0','0','1','0','1','0','r','o','0','0','0','c','0','m','1'},
                            {'1','1','1','1','1','1','1','1','1','1','1','P','1','1','1','1','1','1','1','1','1','1','1'}}; //21
        
                           
       transforma();
       agrega();
       link= new Link(5);
       addObject(link,400 , 530 );
                     
                          
         }
    /**
     * Metodo para la preparación del nivel 3
     * inicializa las posiciones de los objetos 
     * por medio de un arreglo
     */
    public void preparaNiveluno3()
        {
        
         exist = new char[][] {{'0','0','0','0','0','0','0','0','0','0','1','P','1','0','0','0','0','0','0','0','0','0','0'},
                               {'1','1','1','1','1','1','1','1','1','1','1','0','1','0','1','1','1','1','1','1','1','1','1'},
                               {'1','o','0','0','a','0','o','0','0','f','0','0','0','1','v','w','1','o','0','0','1','0','1'},
                               {'1','0','0','0','0','0','0','0','0','1','0','0','0','f','L','0','f','1','0','0','1','0','1'},
                               {'1','0','0','0','a','a','a','a','v','1','1','0','1','f','1','0','1','f','0','0','m','0','1'},
                               {'1','0','0','0','a','m','0','1','0','1','0','n','0','0','1','p','1','0','c','0','1','0','1'},
                               {'1','c','0','m','a','0','0','1','0','1','0','0','0','c','1','0','0','t','0','f','f','0','1'},
                               {'1','0','0','0','f','0','0','0','0','1','0','f','f','r','r','c','f','f','f','f','f','0','1'},
                               {'1','0','n','0','f','v','0','1','a','1','0','0','0','0','r','r','1','v','0','a','e','0','1'},
                               {'P','0','0','0','f','c','0','1','m','0','0','a','a','0','0','0','1','1','0','0','0','0','P'},
                               {'1','v','0','0','1','0','0','1','o','0','0','v','c','a','0','0','0','1','0','a','0','0','1'},
                               {'1','0','0','0','1','0','0','1','f','f','f','f','f','f','r','r','0','1','0','a','0','0','1'},
                               {'1','0','e','0','1','0','0','0','0','0','0','0','m','1','0','0','0','1','0','a','0','0','1'},
                               {'1','0','0','0','r','0','0','0','1','0','e','0','0','1','0','0','0','1','0','a','0','c','1'},
                               {'1','t','0','c','r','0','0','v','0','0','0','0','0','0','0','0','0','0','0','a','0','v','1'},
                               {'1','0','v','0','r','o','0','0','1','v','f','0','f','0','1','o','0','0','1','a','m','0','1'},
                               {'1','1','1','1','1','1','1','1','1','1','1','P','1','1','1','1','1','1','1','1','1','1','1'}}; //21
        
          transforma();
          agrega();
          link= new Link(0);
          addObject(link,410 ,70);
                     
                          
         }
    /**
     * Metodo para la preparación del nivel 1
     * inicializa las posiciones de los objetos 
     * por medio de un arreglo
    */
    public void preparaNiveluno4()
      {
        
         exist = new char[][] {{'0','0','0','0','0','0','0','0','0','0','1','P','1','0','0','0','0','0','0','0','0','0','0'},
                               {'1','1','1','1','1','1','1','1','1','1','1','0','1','0','1','1','1','1','1','1','1','1','1'},
                               {'1','0','0','0','0','0','0','o','0','0','1','m','0','f','o','0','0','1','m','0','v','v','1'},
                               {'1','v','0','a','0','0','0','0','v','0','1','c','0','1','0','0','0','1','0','0','v','v','1'},
                               {'1','0','t','a','0','a','a','a','v','0','1','n','0','f','0','0','0','1','w','0','0','0','1'},
                               {'1','0','0','a','c','0','0','1','0','0','1','0','v','0','0','1','p','1','r','r','0','0','1'},
                               {'1','1','1','1','0','n','0','1','0','0','1','0','0','0','c','r','c','0','0','0','0','0','1'},
                               {'1','0','f','f','a','0','0','0','0','c','1','e','0','0','r','r','r','1','1','1','0','1','1'},
                               {'P','0','0','0','a','a','a','1','e','0','1','0','0','0','0','m','0','1','0','v','0','0','P'},
                               {'1','1','1','0','0','0','0','0','0','c','0','f','0','0','0','0','0','1','0','0','n','0','1'},
                               {'1','m','f','0','0','1','f','1','a','f','a','a','a','a','a','0','f','1','0','0','0','0','1'},
                               {'1','c','f','e','0','1','0','0','0','0','c','1','m','v','r','0','f','1','0','0','v','n','1'},
                               {'1','c','f','f','0','0','0','f','f','f','0','0','0','0','r','c','0','1','0','0','0','0','1'},
                               {'1','c','0','f','r','r','f','f','e','0','0','0','c','0','r','0','v','1','0','w','1','L','1'},
                               {'1','0','0','0','v','0','n','0','0','0','1','0','1','0','0','0','0','1','m','0','1','0','1'},
                               {'1','o','0','0','f','v','0','0','0','m','1','0','1','0','o','0','0','1','0','0','0','v','1'},
                               {'1','1','1','1','1','1','1','1','1','1','1','P','1','1','1','1','1','1','1','1','1','1','1'}}; //21
                           
         
         transforma();
         agrega();
         link=new Link(10);               
         addObject(link,60 , 300 );
                       
                           
  
        }
    /** 
     * Metodo para pasar los las pociones de cada nivel a un arreglo
     */
    public void transforma()
    {
          for(int i=0;i< exist.length;i++)
             for(int j=0;j< exist[0].length;j++)
                    existe[i][j]= exist[i][j];
    }
        
  /**
   * metodo que crea y agrega los objetos desde un arreglo
   */
    public void agrega()
        {
             int j, i,n=0;
          for(j = 0; j < lasParedes[0].length; j++)
            for(i=0; i < lasParedes.length; i++)
             {
                if(existe[i][j]=='1')
                    lasParedes[i][j]=new Pared();
                if(existe[i][j]=='a')
                    losArboles[i][j]=new Arbol();
                if(existe[i][j]=='r')
                  lasPiedras[i][j]=new Piedra();
                if(existe[i][j]=='p')
                    lasPuertas[i][j]=new Puerta();
                if(existe[i][j]=='f')
                    losFuegos[i][j]=new Fuego();
                if(existe[i][j]=='t')
                {
                    lasCajas[i][j]=new Caja();
                    losTesoros[i][j]=new Tesoro();
                }
                if(existe[i][j]=='m')
                {
                    lasTrampas[i][j]= new Trampa();
                      lasCajas[i][j]=new Caja();
                }
                
                if(existe[i][j]=='e')
                    losTrolls[i][j]=new Troll();
                if(existe[i][j]=='o')
                  { 
                    if(i<9)
                       losOrions[i][j]=new Orion(1);
                    else 
                       losOrions[i][j]=new Orion(2);
                  }
                if(existe[i][j]=='n')
                    losNaos[i][j]=new Nao();
                if(existe[i][j]=='w')
                    losWarriors[i][j]=new Warrior();
                if(existe[i][j]=='v')
                    losBonus[i][j]=new Bonus(1);
                if(existe[i][j]=='c')
                    losBonus[i][j]=new Bonus(2);
                if(existe[i][j]=='P')
                    lasPuertasM[i][j]=new PuertaMayor(n+=1);
                if(existe[i][j]=='L')
                    lasLlaves[i][j]=new Llave();
                
             }
            
          for(j = 0; j < existe[0].length; j++)
            for(i = 0; i < existe.length; i++)
            {
                if(existe[i][j]=='1')
                        addObject(lasParedes[i][j],20 + (j*35), 20 + (35*i));
                if(existe[i][j]=='a')
                        addObject(losArboles[i][j],20 + (j*35), 20 + (35*i));
                if(existe[i][j]=='r')
                        addObject(lasPiedras[i][j],20 + (j*35), 20 + (35*i));
                if(existe[i][j]=='p')
                        addObject(lasPuertas[i][j],20 + (j*35), 20 + (35*i));
                if(existe[i][j]=='f')
                        addObject(losFuegos[i][j],20 + (j*35), 20 + (35*i));
                if(existe[i][j]=='t')
                {
                        addObject(losTesoros[i][j],20 + (j*35), 20 + (35*i));
          
                        addObject(lasCajas[i][j],20 + (j*35), 20 + (35*i));
                    }
                  if(existe[i][j]=='m')
                {
                        addObject(lasTrampas[i][j],20 + (j*35), 20 + (35*i));
          
                        addObject(lasCajas[i][j],20 + (j*35), 20 + (35*i));
                    }
                if(existe[i][j]=='e')
                        addObject(losTrolls[i][j],20 + (j*35),20 + (35*i));
                if(existe[i][j]=='o')
                        addObject(losOrions[i][j],20 + (j*35),20  + (35*i));
                if(existe[i][j]=='n')
                        addObject(losNaos[i][j],20 + (j*35),20  + (35*i));
                if(existe[i][j]=='w')
                        addObject(losWarriors[i][j],20 + (j*35),20  + (35*i));
                if(existe[i][j]=='v')
                        addObject(losBonus[i][j],20 + (j*35),20  + (35*i));
                if(existe[i][j]=='c')
                        addObject(losBonus[i][j],20 + (j*35),20  + (35*i));
                if(existe[i][j]=='P')
                     addObject(lasPuertasM[i][j],20 + (j*35),20  + (35*i));
                if(existe[i][j]=='L')
                     addObject(lasLlaves[i][j],20 + (j*35),20  + (35*i));

              }
       }

}

